const isDEV = process.env.NODE_ENV === "development"; // 是否是开发模式

module.exports = {
    // 执行顺序由右往左,所以先处理ts,再处理jsx,最后再试一下babel转换为低版本语法
    presets: [
        [
            // "@babel/preset-env",
            "@babel/preset-env",
            // "@babel/preset-react",
            {
                // 设置兼容目标浏览器版本,也可以在根目录配置.browserslistrc文件,babel-loader会自动寻找上面配置好的文件.browserslistrc
                targets: {
                    browsers: ["> 1%", "last 2 versions", "not ie<= 8"]
                },
                useBuiltIns: "usage", // 根据配置的浏览器兼容,以及代码中使用到的api进行引入polyfill按需添加
                corejs: 3, // 配置使用core-js使用的版本
                loose: true,
            },
        ],
        // 如果您使用的是 Babel 和 React 17，您可能需要将 "runtime":"automatic" 添加到配置中。
        // 否则可能会出现错误：Uncaught ReferenceError: React is notdefined
        ["@babel/preset-react", { runtime: "automatic" }],
        "@babel/preset-typescript",
    ],
    plugins: [
        //装饰器：babel处理js非标准语法
        // 现在 react 主流开发都是函数组件和 react-hooks ，但有时也会用类组件，可以用装饰器简化代码。
        ["@babel/plugin-proposal-decorators", { legacy: true }],
    ].filter(Boolean), // 过滤空值
}

